﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class web_pages_pages : System.Web.UI.Page
{
    //Các tham số cần thiết khi gọi trang
    public string pageId = ""; //chứa id của trang đã tạo
    public Boolean pageStatus = true;//Trạng thái trang được gọi(true là có tồn tại)
    public Boolean panelTop=false,panelCenter=false,panelRight=false,panelBottom=false; //Biến trạng thái kiểm tra có control trong từng panel ko?
    Common comm = new Common();
    public DataTable dtt,dtt_top,dtt_right,dtt_center,dtt_footer,dtt_menu;
    Control ct;
    protected void Page_Load(object sender, EventArgs e)
    {
        this.Title = "Nhà tuyển dụng " + ConfigurationManager.AppSettings["centername"];
        //Thiết lập session cho các control kiểm tra đường dẫn
        Session.Remove("home");
        Session.Add("home", "0");
        if (!IsPostBack)
        {
            if (!string.IsNullOrEmpty(Request.QueryString["idpage"])) pageId = comm.TextFormat(Request.QueryString["idpage"]).Trim();
            if (pageId == "") pageStatus = false; //Nếu không có yêu cầu nào thì thiết lập lại trạng thái cho pages
            else
            {
                //Kiểm tra xem pageID này có tồn tại hoặc đang ở trạng thái ẩn không? Nếu có thiết lập lại trạng thái trang
                dtt = comm.getDataTable("select * from CreatePages_page where id_page="+pageId);
                dtt_menu = comm.getDataTable("select * from CreatePages_page where active=1");
                if (dtt.Rows.Count > 0)
                {
                    if (Boolean.Parse(dtt.Rows[0]["active"].ToString()) == false) pageStatus = false;
                    else
                    {
                        Session.Remove("id_page");
                        Session.Add("id_page", pageId);
                        this.Page.Title=dtt.Rows[0]["title"].ToString();
                        //Lấy ra các thông tin của trang và danh sách các control tương ứng
                        string sql_select = "SELECT B.*,C.* FROM dbo.CreatePages_page_block AS B" +
                            " INNER JOIN dbo.CreatePages_block AS C ON B.id_block = C.id_block";
                        string sql_order = " ORDER BY B.order_block";
                        //Panel TOP
                        string sql_where = " WHERE id_page=" + pageId + " and C.position='top'";
                        dtt_top = comm.getDataTable(sql_select+sql_where+sql_order);
                        //Panel CENTER
                        sql_where = " WHERE id_page=" + pageId + " and C.position='center'";
                        dtt_center = comm.getDataTable(sql_select + sql_where + sql_order);
                        //Panel RIGHT
                        sql_where = " WHERE id_page=" + pageId + " and C.position='right'";
                        dtt_right = comm.getDataTable(sql_select + sql_where + sql_order);
                        //Panel FOOTER
                        sql_where = " WHERE id_page=" + pageId + " and C.position='footer'";
                        dtt_footer = comm.getDataTable(sql_select + sql_where + sql_order);

                        //ADD CONTROL cho từng panel tương ứng
                        //PANEL TOP
                        for (int i = 0; i < dtt_top.Rows.Count; i++)
                        {
                            if(!(String.IsNullOrEmpty(dtt_top.Rows[i]["path"].ToString())))
                            {
                                ct = Page.LoadControl(dtt_top.Rows[i]["path"].ToString());
                                panel_top.Controls.Add(ct);
                            }
                        }
                        //PANEL CENTER
                        if (Request.Params["page"] != null)
                        {
                            switch (Request.Params["page"])
                            {
                                case "tintuc":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_news_details.ascx"));
                                    break;
                                case "dstintuc":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_news_list.ascx"));
                                    break;
                                case "dsvanban":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_vanban_list.ascx"));
                                    break;
                                case "dschinhsach":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_chinhsach_list.ascx"));
                                    break;
                                case "dsxkld":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_xkld_list.ascx"));
                                    break;
                                case "xkld_chitiet":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_xkld_details.ascx"));
                                    break;
                                case "ntv_chitiet":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_ntv_details.ascx"));
                                    break;
                                case "vtn_chitiet":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_vtn_details.ascx"));
                                    break;
                                case "kdt_chitiet":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_kdt_details.ascx"));
                                    break;
                                case "kdt_ds_dk":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_kdt_ds_ketqua.ascx"));
                                    break;
                                case "gioithieu":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/ctrl_vl_left_gioithieu.ascx"));
                                    break;
                                case "kdt_list":
                                    panel_center.Controls.Add(new UserControl().LoadControl("~/web/Controls/vl_left_Kdt_list.ascx"));
                                    break;
                            }
                        }
                        else
                        {
                            string[] sTintuc;
                            for (int i = 0; i < dtt_center.Rows.Count; i++)
                            {
                                if (!(String.IsNullOrEmpty(dtt_center.Rows[i]["path"].ToString())))
                                {
                                    if (dtt_center.Rows[i]["id_block"].ToString() == "17") {
                                        ct = Page.LoadControl(dtt_center.Rows[i]["path"].ToString());
                                        ct.SkinID = dtt_center.Rows[i]["notes"].ToString();
                                    }
                                    else
                                    {
                                        sTintuc = dtt_center.Rows[i]["path"].ToString().Split('?');
                                        if (sTintuc.Length > 1)
                                        {
                                            ct = Page.LoadControl(sTintuc[0].ToString());
                                            ct.SkinID = sTintuc[1].ToString();
                                        }
                                        else
                                        {
                                            ct = Page.LoadControl(dtt_center.Rows[i]["path"].ToString());
                                        }
                                    }
                                    panel_center.Controls.Add(ct);
                                }
                            }
                        }
                        //PANEL BOTTOM
                        for (int i = 0; i < dtt_footer.Rows.Count; i++)
                        {
                            if (!(String.IsNullOrEmpty(dtt_footer.Rows[i]["path"].ToString())))
                            {
                                ct = Page.LoadControl(dtt_footer.Rows[i]["path"].ToString());
                                panel_bottom.Controls.Add(ct);
                            }
                        }
                        //PANEL RIGHT
                        for (int i = 0; i < dtt_right.Rows.Count; i++)
                        {
                            if (!(String.IsNullOrEmpty(dtt_right.Rows[i]["path"].ToString())))
                            {
                                ct = Page.LoadControl(dtt_right.Rows[i]["path"].ToString());
                                panel_right.Controls.Add(ct);
                            }
                        }
                    }
                }
                else pageStatus = false;
            }
        }

    }
}
